home *** CD-ROM | disk | FTP | other *** search
/ Over 1,000 Windows 95 Programs / Over 1000 Windows 95 Programs (Microforum) (Disc 1).iso / 1271 / selftest.frm < prev    next >
Text File  |  1997-02-19  |  7KB  |  277 lines

  1. VERSION 2.00
  2. Begin Form Selftest 
  3.    AutoRedraw      =   -1  'True
  4.    Caption         =   "Self Test"
  5.    ClientHeight    =   4020
  6.    ClientLeft      =   1770
  7.    ClientTop       =   1935
  8.    ClientWidth     =   7365
  9.    FontBold        =   -1  'True
  10.    FontItalic      =   0   'False
  11.    FontName        =   "Courier New"
  12.    FontSize        =   8.25
  13.    FontStrikethru  =   0   'False
  14.    FontUnderline   =   0   'False
  15.    Height          =   4710
  16.    Left            =   1710
  17.    LinkTopic       =   "Form1"
  18.    ScaleHeight     =   4020
  19.    ScaleWidth      =   7365
  20.    Top             =   1305
  21.    Width           =   7485
  22.    Begin Menu menuInstruct 
  23.       Caption         =   "Instructions"
  24.    End
  25.    Begin Menu menuSettings 
  26.       Caption         =   "Settings"
  27.       Begin Menu menu1stPort 
  28.          Caption         =   "1st Port"
  29.          Begin Menu menu1stCOM1 
  30.             Caption         =   "COM1"
  31.          End
  32.          Begin Menu menu1stCOM2 
  33.             Caption         =   "COM2"
  34.          End
  35.          Begin Menu menu1stCOM3 
  36.             Caption         =   "COM3"
  37.          End
  38.          Begin Menu menu1stCOM4 
  39.             Caption         =   "COM4"
  40.          End
  41.       End
  42.       Begin Menu menu2ndPort 
  43.          Caption         =   "2nd Port"
  44.          Begin Menu menu2ndCOM1 
  45.             Caption         =   "COM1"
  46.          End
  47.          Begin Menu menu2ndCOM2 
  48.             Caption         =   "COM2"
  49.          End
  50.          Begin Menu menu2ndCOM3 
  51.             Caption         =   "COM3"
  52.          End
  53.          Begin Menu menu2ndCOM4 
  54.             Caption         =   "COM4"
  55.          End
  56.       End
  57.    End
  58.    Begin Menu menuTest 
  59.       Caption         =   "Test"
  60.    End
  61.    Begin Menu menuExit 
  62.       Caption         =   "Exit"
  63.    End
  64. End
  65. ' SELFTEST.BAS
  66.  
  67. Option Explicit
  68.  
  69. Sub Form_Load ()
  70. Dim X As String
  71.    The1stPort = COM1
  72.    The2ndPort = COM2
  73.    menu1stCOM1.Checked = True
  74.    menu2ndCOM2.Checked = True
  75.    TestString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
  76.    Call ShowCaption
  77. End Sub
  78.  
  79. Sub Instruct_Click ()
  80. End Sub
  81.  
  82. Sub menu1stCOM1_Click ()
  83.     The1stPort = COM1
  84.     Call Uncheck1stComPorts
  85.     menu1stCOM1.Checked = True
  86.     Call ShowCaption
  87. End Sub
  88.  
  89. Sub menu1stCOM2_Click ()
  90.     The1stPort = COM2
  91.     Call Uncheck1stComPorts
  92.     menu1stCOM2.Checked = True
  93.     Call ShowCaption
  94. End Sub
  95.  
  96. Sub menu1stCOM3_Click ()
  97.     The1stPort = COM3
  98.     Call Uncheck1stComPorts
  99.     menu1stCOM3.Checked = True
  100.     Call ShowCaption
  101. End Sub
  102.  
  103. Sub menu1stCOM4_Click ()
  104.     The1stPort = COM4
  105.     Call Uncheck1stComPorts
  106.     menu1stCOM4.Checked = True
  107.     Call ShowCaption
  108. End Sub
  109.  
  110. Sub menu2ndCOM1_Click ()
  111.     The2ndPort = COM1
  112.     Call Uncheck2ndComPorts
  113.     menu2ndCOM1.Checked = True
  114.     Call ShowCaption
  115. End Sub
  116.  
  117. Sub menu2ndCOM2_Click ()
  118.     The2ndPort = COM2
  119.     Call Uncheck2ndComPorts
  120.     menu2ndCOM2.Checked = True
  121.     Call ShowCaption
  122. End Sub
  123.  
  124. Sub menu2ndCOM3_Click ()
  125.     The2ndPort = COM3
  126.     Call Uncheck2ndComPorts
  127.     menu2ndCOM3.Checked = True
  128.     Call ShowCaption
  129. End Sub
  130.  
  131. Sub menu2ndCOM4_Click ()
  132.     The2ndPort = COM4
  133.     Call Uncheck2ndComPorts
  134.     menu2ndCOM4.Checked = True
  135.     Call ShowCaption
  136. End Sub
  137.  
  138. Sub menuDebug_Click ()
  139. Dim Code As Integer
  140. Call ShutDown
  141. End Sub
  142.  
  143. Sub menuExit_Click ()
  144.   End
  145. End Sub
  146.  
  147. Sub menuInstruct_Click ()
  148. SELFTEST.Cls
  149. SELFTEST.Print "SELFTEST can operate in one of two ways:"
  150. SELFTEST.Print
  151. SELFTEST.Print "1] A single port with a loopback adapter on the end."
  152. SELFTEST.Print "   The adapter should have TD & RD tied together."
  153. SELFTEST.Print
  154. SELFTEST.Print "2] Two serial ports on the same computer."
  155. SELFTEST.Print "   Connect the two ports together using a Null Modem Cable."
  156. SELFTEST.Print
  157. End Sub
  158.  
  159. Sub menuTest_Click ()
  160.    Dim I, N As Integer
  161.    Dim Code As Integer
  162.    Dim Count As Integer
  163.    Dim TimeMark As Long
  164.    Dim TestLength As Integer
  165.    'begin test run
  166.    SELFTEST.Cls
  167.    RunNumber = RunNumber + 1
  168.    SELFTEST.Print "TESTING: COM"; 1 + The1stPort; " ==> COM"; 1 + The2ndPort
  169.    SELFTEST.Print "Run #"; RunNumber
  170.    'check ports
  171.    If (The1stPort = COM1) And (The2ndPort = COM3) Then
  172.      SELFTEST.Print "COM1 and COM3 share the same IRQ"
  173.      Exit Sub
  174.    End If
  175.    If (The1stPort = COM2) And (The2ndPort = COM4) Then
  176.      SELFTEST.Print "COM2 and COM4 share the same IRQ"
  177.      Exit Sub
  178.    End If
  179.    'turn on 1st port
  180.    Code = GoOnline(The1stPort)
  181.    If Code = 0 Then
  182.      Call ShutDown
  183.      Exit Sub
  184.    End If
  185.    'turn on 2nd port
  186.    If The1stPort <> The2ndPort Then
  187.      Code = GoOnline(The2ndPort)
  188.      If Code = 0 Then
  189.        Call ShutDown
  190.        Exit Sub
  191.      End If
  192.    End If
  193.    'test !
  194.    SELFTEST.Print
  195.    SELFTEST.Print "Test string = "; TestString
  196.    Call ShowConfig
  197.    SELFTEST.Print "[Test string will be sent 16 times]"
  198.    TestLength = Len(TestString)
  199.    SELFTEST.Print "  Sending: ";
  200.    For N = 1 To 16
  201.      SELFTEST.Print Right$(Str$(N), 3);
  202.      For I = 1 To TestLength
  203.        Code = SioPutc(The1stPort, Asc(Mid$(TestString, I, 1)))
  204.        If Code < 0 Then
  205.          Call SayError(SELFTEST, Code)
  206.          Call ShutDown
  207.          Exit Sub
  208.        End If
  209.      Next I
  210.    Next N
  211.    SELFTEST.Print
  212.    SELFTEST.Print "Receiving: ";
  213.    TimeMark = Timer + 4
  214.    For N = 1 To 16
  215.      SELFTEST.Print Right$(Str$(N), 3);
  216.      For I = 1 To TestLength
  217.        Do
  218.          'try for incoming char
  219.          Code = SioGetc(The2ndPort)
  220.          If Code >= 0 Then
  221.            Exit Do
  222.          End If
  223.          'no incoming
  224.          If (Timer >= TimeMark) Or (Code <> WSC_NO_DATA) Then
  225.            SELFTEST.Print
  226.            If Code = WSC_NO_DATA Then
  227.              SELFTEST.Print "[Timeout waiting for incoming data]"
  228.            Else
  229.              Call SayError(SELFTEST, Code)
  230.            End If
  231.            'shut down now
  232.            Call ShutDown
  233.            Exit Sub
  234.          End If
  235.        Loop
  236.        'test incoming char
  237.        If Chr$(Code) <> Mid$(TestString, I, 1) Then
  238.          SELFTEST.Print
  239.          SELFTEST.Print "ERROR: Received "; Chr$(Code);
  240.          SELFTEST.Print ", but expected "; Mid$(TestString, I, 1);
  241.          SELFTEST.Print " for character #"; I
  242.          Call ShutDown
  243.          Exit Sub
  244.        End If
  245.      Next I
  246.    Next N
  247.    SELFTEST.Print
  248.    'clear buffers
  249.    Code = SioRxClear(The1stPort)
  250.    Code = SioTxClear(The1stPort)
  251.  
  252.    If The1stPort <> The2ndPort Then
  253.      Code = SioRxClear(The2ndPort)
  254.      Code = SioTxClear(The2ndPort)
  255.    End If
  256.    'done
  257.    Call ShutDown
  258.    SELFTEST.Print "*** Test complete"
  259. End Sub
  260.  
  261. Sub Uncheck1stComPorts ()
  262. 'uncheck all COM ports
  263. menu1stCOM1.Checked = False
  264. menu1stCOM2.Checked = False
  265. menu1stCOM3.Checked = False
  266. menu1stCOM4.Checked = False
  267. End Sub
  268.  
  269. Sub Uncheck2ndComPorts ()
  270. 'uncheck all COM ports
  271. menu2ndCOM1.Checked = False
  272. menu2ndCOM2.Checked = False
  273. menu2ndCOM3.Checked = False
  274. menu2ndCOM4.Checked = False
  275. End Sub
  276.  
  277.